Today's enterprise data centers store ever-larger amounts of business critical data that must be immediately and continuously available, and highly reliable. The storage systems developed to provide these solutions become increasing complex as development cycles shorten and hardware and software resource bounds are approached. Typical ways of implementing certain functions sometimes need to be optimized.
One example relates to the way in which middleware client applications are implemented in certain storage control systems. Such applications often implement their own session caches. This is often deemed a requirement for performance reasons. However, a number of performance and scalability issues are presented by this approach. For instance, each session cache that is implemented uses significant memory space, thus limiting memory space available to all sessions in the storage control space. Further, the need to provide a session cache for a client application slows the development and deployment time for that application. Furthermore, each local session cache is likely caching a good portion of the same data; thus, cached data redundancy is occurring in an environment where memory space is a commodity. Further, each local session cache is loading the storage system with redundant read requests, placing an unnecessary request load on the system. In addition, each local session cache registers for indications for provision of updates to the data store. These indications and updates must be provided to each individual cache, even though the updates may be redundant, placing yet a further load on the system. It is desirable to provide a new approach to caching for client applications in storage control systems.